"""
WSGI config for codalab project.

This module contains the WSGI application used by Django's development server
and any production WSGI deployments. It should expose a module-level variable
named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
this application via the ``WSGI_APPLICATION`` setting.

Usually you will have the standard Django WSGI application here, but it also
might make sense to replace the whole Django WSGI application with a custom one
that later delegates to the Django one. For example, you could introduce WSGI
middleware here, or combine a Django application with an application of another
framework.

"""
import os

# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks
# if running multiple sites in the same mod_wsgi process. To fix this, use
# mod_wsgi daemon mode with each site in its own daemon process, or use
# os.environ["DJANGO_SETTINGS_MODULE"] = "codalab.settings"
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "codalab.settings")
os.environ.setdefault('DJANGO_CONFIGURATION', 'Dev')
os.environ.setdefault('DJANGO_LOCAL_CONFIGURATION',
                      'codalab.settings.local_environment')

# New Relic
import newrelic.agent
newrelic_ini_path = os.path.dirname(os.path.realpath(__file__))
if os.path.exists('%s/../newrelic.ini' % newrelic_ini_path):
    configuration_name = os.environ.get('DJANGO_CONFIGURATION')  # Dev, Prod, etc.
    os.environ.setdefault('NEW_RELIC_APP_NAME', 'Codalab - %s' % configuration_name)
    newrelic.agent.initialize('%s/../newrelic.ini' % newrelic_ini_path, configuration_name)

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.
from configurations.wsgi import get_wsgi_application
application = get_wsgi_application()

# Apply WSGI middleware here.
# from helloworld.wsgi import HelloWorldApplication
# application = HelloWorldApplication(application)
